// 一、集合的概念：集合是一种无重复元素的列表
// 二、集合的特点：
//     1.集合可以存放多个数据
//     2.集合存放的数据类型无限制
//     3.集合中不能存放重复值
//     4.集合中没有下标
// 三、创建集合
// let s=new Set();//创建一个空集合
// console.log(s);//Set(0) {}
// let s1=new Set([1,2,3]);
// console.log(s1);//Set(3) { 1, 2, 3 }

//四、操作集合
// 1.增加：add(),每次只能增加一个数据;可以进行链式调用;如果增加重复值，则添加无效;
//   通过add添加数组到集合中，数组就是一个整体
// let s=new Set([1,2,3]);
// s.add(44).add(55).add(3).add([1,2,3]);
// console.log(s);

// 五、集合的属性和方法
// 1.计算集合的长度:size
// let s=new Set([1,2,3]);
// console.log(s.size);
// // 2.查看集合中是否包含某一个值，如果有就返回true，没有就返回false：has()
// console.log(s.has(2));//true
// console.log(s.has("2"));//false
// // 3.删除集合中某一个元素：delete()
// s.delete(2);
// s.delete("2");//删除没有的元素也不会报错
// console.log(s);//Set(2) { 1, 3 }

// 六、遍历集合
// let s=new Set(["hello","world","red","blue",true,false]);
// 1.for-of:遍历元素
// for(let i of s){
//     console.log(i);
// }

// 2.keys():遍历键（在集合中键和值相等）
// for(let i of s.keys()){
//     console.log(i);
// }

// 3.values():遍历值（在集合中键和值相等）
// for(let i of s.values()){
//     console.log(i);
// }

// 4.entries():遍历键和值（在集合中键和值相等）
// for(let i of s.entries()){
//     console.log(i);
// }

// 七、集合转数组：使用扩展运算符
// let s=new Set(["hello","world","red","blue",true,false]);
// let arr=[...s];
// console.log(arr);

// 八、数组转集合：创建集合，把数组传入集合中
// let s2=new Set(arr);
// console.log(s2);

// 数组去重
let arr=[12,3,6,12,3,4,4,4,5,6,7];
// 数组转集合
let s=new Set(arr);
console.log(s);
// 集合转数组
let arr2=[...s];
console.log(arr2);